home *** CD-ROM | disk | FTP | other *** search
- [0m[0 p
- [0;1;33;40mZXAM SPECTRUM EMULATOR AGA v1.3 ß[0m
- © 1994 WareSoft All rights reserved
- by Antonio J. Pomar Rosselló
-
-
-
-
- [0;1mDISTRIBUTION[0m
-
- This program is FreeWare. The program can be freely distributed provided
- that all the associated files are distributed with the program itself. Neither
- the program nor their associated files must be modified in any way. The
- complete distribution package can be compressed with LHA, LHarc or similar
- for distribution convenience. No charge must be made for use or distribution
- of this package.
-
- The complete distribution package contains:
-
- ZXAM_SpectrumAGA The executable file (with icon).
- ZXAM_SpectrumAGA_FAST A faster version of the emulator (with icon).
- ZXAM_SpectrumAGA.DOCeng This is the english DOC (with icon).
- ZXAM_SpectrumAGA.DOCesp Spanish translation of the DOC (with icon).
- README!! Notes for distribution (with icon).
- LEEME!! The same, but in spanish (with icon).
- INTERFACE.IFF Diagram of the cassette interface (with icon).
- DIGIT_INTERFACE.IFF Digitalization of my interface (with icon).
- powerpacker.library To load compressed spectrum programs.
-
- This software is provided 'AS IS' without warranty of any kind, either
- expressed or implied. By using this package you agree to accept the entire risk
- as to the quality and performance of the program, or even of the DOC. The same
- applies to the tape interface. It is prohibited to build and sold the tape
- interface for profit. The interface must be build for personal use only.
-
- All trademarks and Copyrights of products mentioned in this document are
- acknowledged by the author.
-
- In the DOC of the Spectrum Emulator 1.7 I have read that AMSTRAD has given
- special permission for emulator authors to use the Spectrum's ROM code. Anyway
- the Spectrum's ROM is copyright to AMSTRAD.
-
- The powerpacker.library is © Nico François.
-
- The Sinclair ZX Spectrum Emulator V1.7 is © Peter McGavin.
-
-
-
-
- [0;1mREQUIREMENTS[0m
-
- This program needs WorkBench 3.0 (v39) or higher to run, the AGA chipset
- and a 68020 CPU, or better. In short, an Amiga 1200 or 4000. It needs the
- powerpacker.library too, to load the compressed Spectrum programs, in LIBS: or
- in the same directory of the executable.
-
- Is VERY convenient that you have 32 bits FAST memory. With FAST memory the
- speed, and the sound, will be A LOT better.
-
-
-
-
- [0;1mINTRODUCTION[0m
-
- Well, maybe you have guessed that this program is a Sinclair ZX Spectrum 48k
- emulator, with all those lovely attributes and only one channel of 1 bit sound
- (sob...).
-
- This is a very very ßeta version. It is unfinished, but I have decided to
- release it with the aim that the people test the emulator (and love it, or
- maybe hate it...) and give me their opinion and ideas about it.
-
- Actually this emulator is mainly a hack, that access directly to the AGA
- hardware. The final version will be much more friendly (as much friendly as I
- can manage to do it) with the operative system and with the hardware.
-
-
-
-
- [0;1mSPECTRUM PROGRAM FORMATS[0m
-
- Before you can understand the function of some of the gadgets of the
- program, you must learn something about the format of the Spectrum programs
- (often called [0;1ms[0mnapshots).
-
- On the disk, a Spectrum program is simply a file that contains a copy of the
- 48k of RAM of the Spectrum, along with all the registers of the Z80 CPU (the
- CPU of the Spectrum).
-
- The problem is that every Spectrum emulator (on any computer) uses a
- different format to save the memory and the registers. That means that a
- program saved with an emulator will not load into any other emulator.
-
- Instead of create my own format for the Spectrum program I have decided to
- support several formats of programs. You can decide what format you want to use
- for the programs, or use the emulator as a format conversor too.
-
- The two formats that I know, and that I have included in the emulator, are
- called (provisionally) PC and MIRAGE. These formats are:
-
- PC: This is the format used by a nice emulator for the IBM PC, and
- compatibles, programmed in Spain by Pedro Gimeno. The executable is
- called SPEC386.EXE and the version I know is the 0.99D ß. This
- emulator needs a 386DX at 25MHz, with a 256k cache, to approach to
- the original Spectrum speed. These files are 49190 bytes long and
- have a .SP extension appended to the name.
-
- MIRAGE: This is the format used by the Spectrum Emulator 1.7, a very
- good emulator for non-AGA machines. These files are 49179 bytes long
- and have the .snapshot extension appended to the name. I recommend
- that you change the extension to .mirage, because it looks like if
- all the emulators are using the same extension. The format version
- supported by the ZXAM emulator is the post-1.6 version, that stores
- correctly the border color.
-
- I know about another emulator (KGB Spectrum Emulator v1.2) but I don't know
- the format of their files. Anyway, it is very buggy, and is incompatible with
- KickStart 2.0 and higher.
-
- If you know any other format (for any computer, like Amiga, Cray, MAC, Atari
- or PC) please send to me the information that you have, along with a disk with
- several games saved in that format. In the next version of the emulator I will
- support that format.
-
-
-
-
- [0;1mRUNNING THE EMULATOR[0m
-
- You can run the emulator from WorkBench or SHELL. If you run it from the
- SHELL, it will "detach" from the SHELL window and will search the program's
- icon to read the ToolTypes.
-
- Any problem at startup will be reported by a requester.
-
- Available ToolTypes are:
-
- PATTERN= Here you can put the pattern (or 'filter') for the
- filerequester. Take a look at the user's manual of
- your Amiga to learn how to use these patterns.
-
- PATH= The directory where you have the Spectrum games,
- if you have any. The filerequester will open
- itself over that directory (I have a directory in
- my Hard Disk with 232 compressed games [4.7Meg]).
-
- DEFFORMAT= The default format used to save the programs (PC
- or MIRAGE). Anyway, you can change this with the
- suitable gadgets.
-
-
-
-
- [0;1mPROGRAM'S WINDOW[0m
-
- The window has several gadgets to load, save, etc.. All the gadgets with an
- underlined letter means that pressing that letter on the keyboard is like click
- on the gadget.
-
- The gadgets are:
-
- Load Program .- Opens the filerequester to choose the spectrum program
- that you want to load. The emulator will detect the format of the file
- and then will load it in the Spectrum's memory. IMPORTANT: the programs
- can be compressed with PowerPacker. That means to save lots of disk
- space. If you load a file that the program don't know, the Spectrum's
- memory will be trashed with that file, but this is harmless. This
- version of the emulator CAN load programs from tape, but you need to
- build the interface described in INTERFACE.IFF.
-
- Reload.- Reloads the last loaded program, that appears in the 'loaded
- file' box.
-
- Save program.- Saves the complete memory and registers of the Spectrum in
- the format selected with the "SAVE FORMAT" gadgets. Actually they are
- saved uncompressed.
-
- POKE.- Guess what...
-
- "SAVE FORMAT" box .- Inside this box there are 4 gadgets to select the
- format you want to use to save the Spectrum programs. Only 2 of these
- gadgets can be used. The other two are reserved for a future own format
- (maybe, if I nedd it...).
-
- RUN .- Starts the emulation. During the emulation the multi-task is
- stopped and the emulator takes TOTAL control over the machine. You can
- return to the WorkBench by pressing the HELP key.
-
- Reset & RUN.- Like RUN but forcing a RESET of the Spectrum.
-
-
-
-
- [0;1mMENUS & KEYBOARD[0m
-
- [0;1m [0mAll the gadgets with an underlined letter means that pressing that letter on
- the keyboard is like click on the gadget. The help key brings the 'About...'
- requester. The ESC key quits the emulator. The TAB, an Shift+TAB, key activates
- and moves through the integer gadgets.
-
- In the menu you can find the 'About...' and 'Quit' items.
-
-
-
-
- [0;1mTHE SPECTRUM'S KEYBOARD[0m
-
- In the emulation the keyboard is like the one of the Spectrum, with some
- 'special' keys:
-
- <- Deletes a char (Shift+0)
- Ctrl Like pressing Caps+Symbol (E mode)
- Alt Like Symbol Shift
- Del Like Shift+1 (Edit)
- Help Returns to WorkBench
- Esc RESET!!!
- F1 Switches between color/black&white modes. In CHIPMEM-only systems
- the DMA load of the memory slows down the CPU. If you switch to the
- black&white mode the DMA load is much smaller, thus the emulator
- will run about 10% faster and the sound will be A LOT better.
- F2 In black&white mode inverts the image.
- Cursor keys Like the original cursor keys of Spectrum+ (Shift+5 6 7 8).
- , (key on the right of M) is the ',' (Symbol+N)
- . (2ª on the right of M) is the '.'(Symbol+M)
- ´ (3ª on the right of M) is the '"' (Symbol+P)
- Ñ (key on the right of L) is the ':' (Symbol+Z)
- ; (2ª key on the right of L) is the ';' (Symbol+O)
-
- (Symbols referent to the spanish Amiga 1200 keyboard)
-
- The keypad works complete.
-
- The Kempston joystick is emulated with the Amiga joystick.
-
- Maybe you will notice that you can't press simultaneously 2 keys in the same
- row of the keyboard. This is because you have an Amiga 1200, and its keyboard
- simply behaves in this very particular way. You can test it with any of those
- keyboard-playing Spectrum games (all the games!).
-
-
-
-
- [0;1mEMULAT[0mION
-
- Details about the FULL version:
-
- - The original Spectrum ROM is inside the executable.
- - The R register is fully emulated.
- - In the F register the 2 unusued bits aren't emulated, and the
- emulation of H and N is partial.
- - The BCD is fully emulated.
- - All the undocumented instructions of the Z80 CPU are emulated.
- - Interrupt mode 0 is like interrupt mode 1 (RST $38).
- - No NMI (for what?).
- - The border is emulated on the copperlist. That means that you
- can't do fancy border effects, but the BORDER command works.
- - The transfer intructions are emulated at 32 bits level.
- - You can run the emulator in color or black&white mode, and
- can switch the modes while running. This is mainly for computers
- with only CHIP memory.
- - FLASH fully emulated.
- - Sound emulated at OUT instruction level.
- - The kempston joystick is fully emulated at IN level.
- - Only partial screen sincronization. Some games will 'blink',
- for the moment.
- - The Spectrum screen is PAL 15KHz. Sorry, but no VGA monitors.
- - The screen is genlock compatible.
- - The emulator works even if VBR is not 0.
- >>>>>>>>> Addendum for version 1.3 ß <<<<<<<<
- - Loads from tape, by means of a patch in the Spectrum's ROM.
- - Saves to tape in REAL TIME, that means, is the Z80 emulation that
- is sending the sound to the tape, even with an Amiga 1200 without
- FAST and in colour mode (!!).
- - The border is nearly perfect.
-
- Details about the FAST version (v1.3 ß):
- - No BCD emulation. That means that the BASIC will print the numbers
- with strange symbols, but the calculatios are still correct. Some
- games don't print correctly the score.
- - The internal timings are less accurate. Some programs may behave
- in strange ways.
- - No R register emulation.
- - No SAVE to tape, and no stabilized sound.
- - No LOAD from tape.
- - The border is of slow type.
- (really, the FAST version is only for PLAYING!!)
- - The speed difference between the FAST and FULL versions is about
- 5% to 10% (depends on the program). Actually, I use the FULL version
- with my Amiga 1200 because I prefer an emulation more accurate.
-
-
-
-
- [0;1mTECHNICAL INFO[0m
-
- Program written in assembler from the first lines to the full 11096 actual
- lines (111926 lines when expanding MACROs!!!). In my Amiga 1200 with hard disk
- the Devpac 3.02 assembles the emulator in 1 min 58 secs (3 min 50 secs with no
- hard disk, and 4 min 53 secs for the last version assembled with my Amiga 500
- Plus). Well, if programming is fun... BIG programming is BIG fun!
-
- This is my third program in assembler. I began to program it in my Amiga 500
- Plus with 2 Meg of RAM and 3 floppy drives. As soon as I could buy an Amiga
- 1200 I had converted the emulator to AGA-only and 68020 code.
-
- I began the emulator to experiment with the 68020 code. At the beginning I
- was programming conditionally in 68000 and 68020 code, and testing the emulator
- in the Amiga 4000/030 of a friend. With the new Amiga 1200 I have experimented
- with the AGA chips, and discarded totally the 68000 and OCS/ECS code.
-
-
-
-
- [0;1mPRE-HISTORY (jurassic?, NO! Around summer 1993![0m)
-
- The first black&white/CLI-only version, with ManicMiner inside the
- executable, worked in 10 days (phew!). Since then there are 6 different color
- emulation systems, and 4 major restructurations of the Z80 emulation. None of
- the pre-AGA versions has been released to the public.
-
- This is not a full time project. While developing the emulator I was
- studying a little automations course, developing the MPMaster program and
- practising my laziness.
-
-
-
-
- [0;1mHISTORY[0m
-
- Version Internal
- version
-
- 1.0 ß 39.00 (11-March-94)
- -First public release.
-
- 1.1 ß 39.01 (2-April-94) (renamed ZXAM_SureCrash)
- -Audio filter off when emulating. Restored at exit.
- -Disabled nearly all of the interruptions. The sound is
- now a lot better.
- -The system keyboard handler 'freezes' after a while.
- I have to use this handler because of the new keyboard
- hardware of the Amiga 1200 (snort!).
-
- 39.02 (19-April-94)
- -Added the ZOOM gadget to the window.
- -The #%$&! system keyboard handler is still 'freezing'.
-
- 1.2 ß 39.03 (26-June-94)
- -¡At last! Fixed the problem with the system keyboard handler.
- -Now, if you press the Caps Lock key the system will be
- informed correctly about its state.
- -Available the FULL (complete) and FAST (faster) versions.
- The FAST version is about 10% faster, but it is a less
- detailed emulation (no BCD, no R register, etc...).
-
- 39.04 (27-June-94)
- -The emulator 'detachs' from the SHELL window.
- -The icon ToolTypes will be read even if the emulator runs
- from the SHELL.
-
- 39.05 (29-June-94)
- -No more audio problems. If a player (like Delitracker) is
- playing when starting the emulation, it will be stopped
- until return to the WorkBench (at least, with the players
- that I have).
-
- 39.06
- -The Timer-B of CIA-B is allocated.
- -Preparatory version with some synchronizations with CIA Timer
- for future implementations of LOAD/SAVE to tape.
-
- 1.3 ß 39.07 (7-July-94)
- -First attempt of patching the ROM LOAD routine. Now you can
- LOAD from tape even in colour mode, with an Amiga 1200 with
- no FAST memory, and even with the FLASH working during the
- LOAD (!!). The patch seems to be very good, and works
- perfectly over the Amiga 1200 and Amiga 4000/030, but needs
- testing in other configurations.
- -Synchronized the OUT instruction. With this we have REAL
- TIME SAVE (not patched!!), and a pure tone BEEP. Some games
- now sounds A LOT better, but other have slowed down a little.
-
- 39.08 (11-July-94)
- -REAL border! Now, if there is enough speed, you can see the
- fancy border effects that some programs do.
- -Readjusted the proportion of bright added to the colours when
- BRIGHT 1. Now looks much more like the original Spectrum.
- -Readjusted the LOAD patch. Still loads very well, but now
- reacts better to the BREAK, HELP ans ESC keys.
- -¡At last! I have managed to do that the lines counter of
- Devpac 3.02 "turns around" for the second time. Now the
- assembled lines (with the macros expanded) are 133637 (!!).
-
- 39.09 (16-July-94)
- -Fixed the problem of the LOAD patch and OUT instruction with
- the border. Now the border is nearly perfect. Some border
- changes are missed because of interferences between the CPU
- and the copperlist. To see the border lines while LOADing or
- SAVEing is more than enough.
-
-
-
-
- [0;1mFUTURE (near future?... or FAR future?)[0m
-
- When finished there will be two versions:
-
- - FAST version: with external tape loader (like the Spectrum Emulator 1.7).
- Some things, like BCD, R register, etc... aren't emulated.
-
- - FULL version: with REAL TIME LOADING (like the real Spectrum). It will
- load anything, even the protected programs. It will run over Amiga
- 4000, and maybe over Amiga 1200 with FAST 32 bits. The emulation will
- be almost complete. Anyway, in this version the patch will be optional.
-
- As soon as I can get some true FAST memory for my Amiga 1200 I will begin
- to work seriously in the Real Time Loading. Without FAST memory the Amiga 1200
- can't run fast enough for real time loading.
-
- Anyway, I am developing a shared library that will make any tape-loading
- routine useless. This is the 'clairvoyance.library', that will foresee the
- contents of any tape without even having to connect the cassette-player to the
- computer. In the future there will be a floppy disk version, and maybe a
- network version.
-
-
-
-
- [0;1mACKNOWLEDGMENTS[0m
-
- I wish to thank to:
-
- - Fco Javier Cocaña Galán, Leonardo Cocaña Galán and Juan A. Estela Valín
- for their friendship and suggestions.
- - Commodore-Amiga Inc for create the very best computer in the world.
- - Motorola for their powerful and flexible microprocessors.
- - Nico François for create the reqtools.library and powerpacker.library.
- - Jan van den Baard for the incredibly useful GadToolsBox.
- - IBM and Atari for create so bad computers, making very easy my choosing
- for the Amiga.
- - Miguel Barnosi, Sysop of TANIT-BBS, for sending the emulator to various
- BBSs of Spain.
-
-
-
-
- [0;1mCONTACTS[0m
-
- If you have any information about file formats, please, send it to me along
- with a disk with some programs saved in that format. If you find some bug
- (NAH!) report me the conditions in that it was found (processor, memory,
- etc..). If the problem is with a Spectrum program, send it to me.
-
- I would like if you can send me a letter about the speed of the emulator in
- your computer. I have tested the emulator in an Amiga 4000/030 with FAST memory
- (runs a bit faster that the real Spectrum) and in my Amiga 1200 without FAST
- (sob!). To report me the speed you can measure the time taken for some
- operation that I can reproduce in my 1200 and Spectrum +2A, like a RESET, a
- BASIC loop (please, send me the listing of the loop), or any other thing. I
- am very interested in the speed over an Amiga 1200 with FAST 32 bits and an
- Amiga 4000/040.
-
- For sending suggestions, bugs, information interchange, etc., contact me at
- the following address:
-
- Antonio J. Pomar Rosselló
- C/ Alférez Cerdá nº 13-bajos
- Palma de Mallorca 07014
- Baleares (Spain)
-
-
- Palma de Mallorca 16-July-1994
-
- NOTE: my knowledge of English is VERY limited, and this text is a good
- sample of this fact.
-
- IF (you=spanish) OR (you KNOW spanish) THEN
- GOTO ZXAM_SpectrumAGA.DOCesp : REM The spanish DOC in much more detailed!
- ELSE
- READ ZXAM_SpectrumAGA.DOCeng : REM Sorry. I hope that you don't get headache!
- ENDIF
-
- NOTE2: if you know about a Dragon 32 emulator for the Amiga, please let me
- know. I know a friend of mine that wants that I program such an emulator. I
- think that some times there is a justification for murder...(AARGH!!).
-
-
- [0m[1 p